# -*-coding:utf-8-*-
from xml.etree import ElementTree as ET

tree = ET.parse('../../data/chp3/data-text.xml')
root = tree.getroot()
print root
print dir(root)  # 查看 root 对象方法
print list(root)  # 查看根元素的子元素

data = root.find('Data')  # find 方法可以利用标签名来搜索子元素

"""find 和 findall 的区别在于，find 返回的是 匹配的第一个元素，而 findall 返回的是匹配的所有元素。"""

all_data = []

for observation in data:
    record = {}
    for item in observation:

        lookup_key = item.attrib.keys()[0]  # attrib 返回每一个节点的属性

        if lookup_key == 'Numeric':
            rec_key = 'NUMERIC'
            rec_value = item.attrib['Numeric']
        else:
            rec_key = item.attrib[lookup_key]
            rec_value = item.attrib['Code']

        record[rec_key] = rec_value
    all_data.append(record)

print all_data
